package com.wangcanxuan.www.service;

import com.wangcanxuan.www.annotation.Transaction;
import com.wangcanxuan.www.entity.dto.ResultInfo;
import com.wangcanxuan.www.entity.po.Role;
import com.wangcanxuan.www.entity.po.User;

/**
 * 用户业务
 *
 * @author HHLJ
 * @date 2022/03/26
 */
public interface UserService {
    /**
     * 实现登录业务
     *
     * @param userName 用户名
     * @param password 密码
     * @return {@link ResultInfo}<{@link User}>
     */
    ResultInfo<User> login(String userName, String password);

    /**
     * 实现注册业务注册
     *
     * @param user 用户
     * @return {@link ResultInfo}<{@link ?}>
     */
    @Transaction
    ResultInfo<String> register(User user);

    /**
     * 获得用户当前职位
     *
     * @param userId 用户当前id
     * @return {@link ResultInfo}<{@link Role}>
     */
    ResultInfo<Role> getUserRole(String userId);

    /**
     * 实现签到业务
     *
     * @param id 用户当前id
     * @return {@link ResultInfo}<{@link ?}>
     */
    @Transaction
    ResultInfo<User> signIn(String id);

    /**
     * 实现刷新界面业务
     *
     * @param id id
     * @return {@link ResultInfo}<{@link ?}>
     */
    ResultInfo<User> refresh(String id);

    /**
     * 实现更新用户信息业务
     *
     * @param user 用户
     * @return {@link ResultInfo}<{@link ?}>
     */
    @Transaction
    ResultInfo<String> updateUserMessage(User user);

    /**
     * 实现找到密码业务
     *
     * @param user 用户
     * @return {@link ResultInfo}<{@link ?}>
     */
    @Transaction
    ResultInfo<String> findPassword(User user);



}
